1. Field of the Present Invention
Embodiments of the present invention relate, in general, to networking. More specifically, the embodiments of the present invention relate to a method and a system for billing network usage in a multicast content-delivery network.
2. Description of the Background Art
In a typical content-delivery network, sources transmit streaming content, such as a television channel instance, to selected multiple subscribers who have joined a multicast group. Each source has to generate only a single data stream and a multicast-enabled router forwards a multicast stream to a particular network only if there are multicast receivers on that network.
Membership in a multicast group is dynamic; hosts can join and leave at any time. There is no restriction on the location or number of members in a multicast group. A host can be a member of more than one multicast group at a time. How active a multicast group is and what members it has can vary from group to group and from time to time. A multicast group can be active for a long time, or it may be very short-lived. Membership in a group can change constantly. A group that has members may have no activity.
Routers executing a multicast routing protocol, such as Protocol-Independent Multicast (PIM), maintain forwarding tables to forward multicast datagrams. Routers use the Internet Group Management Protocol (IGMP) to learn whether members of a group are present on their directly attached subnets. Hosts join multicast groups by sending IGMP report messages.
Many multimedia applications involve multiple participants. IP multicast is naturally suitable for this communication paradigm. In order to show interest in receiving the content, the users transmit multicast-group join messages to the edge sites. For example, in a television network, television channels are streams of data. These channels are transmitted from various sources to a large number of subscribers through various service providers. The subscribers can switch between the various channels as desired.
To join a multicast, the subscriber transmits a multicast group join message to the multicast router operated by a service provider. The join message includes a control packet such as an IGMP join message. Subsequently, the router transmits a control packet such as a PIM join message to a Rendezvous Point (RP) router in the content-delivery network. All routers along the way to the RP transmit the PIM join message to their respective next-hop routers in the direction of the RP. In this way, multicast state is created on each router from the router closest to the subscriber to the RP. Thereafter, the RP router transmits the PIM join message to the source of the multicast stream. In this way, a multicast distribution tree is set up after which the subscriber is able to receive the multicast stream.
Setting up the multicast distribution tree requires processing the control packet, a process that can involves a considerable amount of time. Thus, there is often substantial latency for the subscriber to receive the transmission of the multicast.
When the subscriber switches from one multicast stream to another, a new multicast distribution tree must be set up. For each multicast stream, state must be maintained and routers sitting in the path from the source of the multicast stream to the subscriber must process the control packets.
If the subscriber switches between a number of multicast streams within a time window, then the control packet processing would also have to scale to match the number of multicast streams subscribed to by the subscriber within the time window. This leads to a substantial amount of additional processing by the routers in the multicast distribution tree. Additional bandwidth may need to be allocated if the selected multicast stream is not already in the set of multicast streams.
Conventionally, service providers bill subscribers on a fixed-rate basis. For example, a fixed monthly charge for a set of multicast streams is billed to the subscribers. Therefore, a subscriber who is frequently switching multicast streams is charged equal to a subscriber switching less frequently. Moreover, a subscriber subscribing to a multicast stream with heavy bandwidth requirement is charged equal to a subscriber subscribing to multicast streams with low bandwidth requirement. What is needed is a method and a system for monitoring and billing multicast stream subscribers based on various differential billing policies.